package br.org.acessobrasil.correiobraille.dao;

import java.util.List;

import javax.persistence.Query;

import br.org.acessobrasil.portal.persistencia.SuperDao;
import br.org.acessobrasil.correiobraille.modelo.CbrUsuario;

public class CbrUsuarioDao extends SuperDao<CbrUsuario>{

	@SuppressWarnings("unchecked")
	public List<CbrUsuario> list() {
		return getEntityManager().createQuery("Select u from CbrUsuario u order by u.nome").getResultList();
	}

	@Override
	public CbrUsuario select(Long id) {
		return getEntityManager().find(CbrUsuario.class, id);
	}

	public CbrUsuario selectByEmail(CbrUsuario cbrUsuario) {
		Query q = getEntityManager().createQuery("Select u from CbrUsuario u where u.email=?");
		q.setParameter(1, cbrUsuario.getEmail());
		try{
			return (CbrUsuario)q.getSingleResult();
		}catch(Exception e){
			//e.printStackTrace();
			return null;
		}
	}

	public CbrUsuario selectByEmail(String login) {
		Query q = getEntityManager().createQuery("Select u from CbrUsuario u where u.email=?");
		q.setParameter(1,login);
		try{
			return (CbrUsuario)q.getSingleResult();
		}catch(Exception e){
			//e.printStackTrace();
			return null;
		}
	}
	public CbrUsuario selectByCod(String cod_validacao) {
		Query q = getEntityManager().createQuery("Select u from CbrUsuario u where u.cod_validacao=?");
		q.setParameter(1, cod_validacao);
		try{
			return (CbrUsuario)q.getSingleResult();
		}catch(Exception e){
			//e.printStackTrace();
			return null;
		}
	}

	public CbrUsuario selectByLoginPass(String login, String pass) {
		Query q = getEntityManager().createQuery("Select u from CbrUsuario u where u.email=? and u.senha=?");
		q.setParameter(1, login);
		q.setParameter(2, pass);
		try{
			return (CbrUsuario)q.getSingleResult();
		}catch(Exception e){
			//e.printStackTrace();
			return null;
		}
	}

}
